package com.ztorn.fiscale.service;

import com.ztorn.fiscale.domain.FiscaleTaxInvoiceItem;
import java.util.List;

/**
 * 税务发票明细Service接口
 * 
 * @author ztorn
 * @date 2025-09-19
 */
public interface IFiscaleTaxInvoiceItemService 
{
    /**
     * 查询税务发票明细
     * 
     * @param itemId 税务发票明细ID
     * @return 税务发票明细
     */
    public FiscaleTaxInvoiceItem selectFiscaleTaxInvoiceItemById(Long itemId);

    /**
     * 查询税务发票明细列表
     * 
     * @param fiscaleTaxInvoiceItem 税务发票明细
     * @return 税务发票明细集合
     */
    public List<FiscaleTaxInvoiceItem> selectFiscaleTaxInvoiceItemList(FiscaleTaxInvoiceItem fiscaleTaxInvoiceItem);

    /**
     * 根据发票ID查询税务发票明细列表
     * 
     * @param invoiceId 发票ID
     * @return 税务发票明细集合
     */
    public List<FiscaleTaxInvoiceItem> selectFiscaleTaxInvoiceItemByInvoiceId(Long invoiceId);

    /**
     * 新增税务发票明细
     * 
     * @param fiscaleTaxInvoiceItem 税务发票明细
     * @return 结果
     */
    public int insertFiscaleTaxInvoiceItem(FiscaleTaxInvoiceItem fiscaleTaxInvoiceItem);

    /**
     * 批量新增税务发票明细
     * 
     * @param fiscaleTaxInvoiceItems 税务发票明细列表
     * @return 结果
     */
    public int insertFiscaleTaxInvoiceItems(List<FiscaleTaxInvoiceItem> fiscaleTaxInvoiceItems);

    /**
     * 修改税务发票明细
     * 
     * @param fiscaleTaxInvoiceItem 税务发票明细
     * @return 结果
     */
    public int updateFiscaleTaxInvoiceItem(FiscaleTaxInvoiceItem fiscaleTaxInvoiceItem);

    /**
     * 批量删除税务发票明细
     * 
     * @param itemIds 需要删除的税务发票明细ID
     * @return 结果
     */
    public int deleteFiscaleTaxInvoiceItemByIds(Long[] itemIds);

    /**
     * 根据发票ID删除税务发票明细
     * 
     * @param invoiceId 发票ID
     * @return 结果
     */
    public int deleteFiscaleTaxInvoiceItemByInvoiceId(Long invoiceId);

    /**
     * 删除税务发票明细信息
     * 
     * @param itemId 税务发票明细ID
     * @return 结果
     */
    public int deleteFiscaleTaxInvoiceItemById(Long itemId);
}